Amazon ML への予測問い合わせ件数をCloud Watchで取得してみた
はじめに
Cloud Watch のメトリクスに、新たにAmazon MLが加わりました。
Now Access CloudWatch Metrics directly from the Amazon ML Console
このメトリクスを用いることで、Cloud Watchを通して直接Amazon MLの予測問い合わせの回数などの情報を監視することができるようになります。
この記事では、実際に予測モデルに対してメトリクスを作成し、その予測問い合わせの状況をCloud Watch を通して監視してみたいと思います。
メトリクスの設定
まずは、Amazon MLで予測モデルを作成します。モデル作成のためのデータはTutorialでお世話になった銀行データをそのまま用います。構築後にリアルタイム予測用のエンドポイントを作成しておきます。
予測モデル作成後、リアルタイム予測やバッチ予測を行うと、CloudWatchにAmazon MLのメトリクスが新たに追加されます。
Amazon MLの予測モデルの詳細画面からもメトリクスを見ることができます。
この情報をもとに、実行された予測の件数や失敗した件数などの情報を得ることができます。
Amazon MLのメトリクスを用いて取得できる情報は以下となります。
メトリクス | 説明 |
---|---|
PredictCount | 実行された予測の件数 |
PredictFailureCount | 失敗した予測の件数 |
ディメンション | 説明 |
---|---|
MLModelId | Amazon MLのモデルID |
RequestMode | 予測問い合わせの種類 (BatchPredictionsまたはRealTimePredictions) |
リアルタイム予測を試して見る
以下のスクリプトを実施して、実際に問い合わせのカウントが行われるか確認してみました。
import csv import boto3 model_id = 'ml-xxxxxxxxxx' predict_endpoint = 'https://realtime.machinelearning.us-east-1.amazonaws.com' with open('banking_eval.csv', 'r') as f: session = boto3.Session(region_name = 'us-east-1') ml = session.client('machinelearning') reader = csv.DictReader(f) for row in reader: resp = ml.predict( MLModelId=model_id, Record=row, PredictEndpoint=predict_endpoint ) print(resp)
結果がこちらになります。
計測されていることがわかります。
おわりに
CloudWatchを利用することで、Amazon MLの予測問い合わせの件数や失敗した問い合わせを監視することができるようになりました。
Amazon MLによる機械学習を実システムに運用する上では重要な機能なので、今後もアップデートを期待しています。